package com.example.duomeitijuhe.others;

import android.graphics.*;

/**
 * Created by Michael on 2014/10/13.
 */
public class RoundPicture {



    public RoundPicture(){

    }
    public Bitmap toRoundBitmap(Bitmap bitmap){
        int width = bitmap.getWidth();
        int height = bitmap.getHeight();
        float roundPx;
        float left,top,right,bottom,dst_left,dst_top,dst_right,dst_bottom;
        if (width <= height){
            roundPx = width / 2;

            left = 0;
            top = 0;
            right = width;
            bottom = width;

            height = width;

            dst_left = 0;
            dst_top = 0;
            dst_right = width;
            dst_bottom = width;
        }else {
            roundPx = height / 2;

            float space = (width - height) / 2;
            left = space;
            top = 0;
            right = width - space;
            bottom = height;

            width = height;

            dst_left = 0;
            dst_top = 0;
            dst_right = height;
            dst_bottom = height;
        }
        roundPx +=10;
        Bitmap myBitmap = Bitmap.createBitmap(width,height, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(myBitmap);

        final Paint paint = new Paint();
        final Rect src = new Rect((int)left,(int)top,(int)right,(int)bottom);
        final Rect dst = new Rect((int)dst_left,(int)dst_top,(int)dst_right,(int)dst_bottom);
        final RectF rectF = new RectF(dst);

        paint.setAntiAlias(true); //设置画笔无锯齿

        canvas.drawARGB(0,0,0,0); //填充整个canvas

        canvas.drawRoundRect(rectF,roundPx,roundPx,paint); //画圆

        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(bitmap,src,dst,paint);

        return myBitmap;

    }
}
